Сайт Информационных Технологий

А.Н. Аверкин, К. В. Сулин

Московская государственная академия приборостроения и информатики

Построение нечеткого регулятора скорости электромотора на базе параметрических логик

The application has the aim to control the rotation speed of a small DC motor with permanent magnet. Aim of the controller is to force motor to reach any rotation speed represented by a reference voltage value.

Разработанное программно –

алгоритмическое обеспечение является моделью нечеткого контроллера , осуществляющего управление скоростью вращения ротора электрического мотора постоянного тока . Разрабатываемый алгоритм функционирования нечеткого регулятора основан на многозначных нечетких логиках , позволяющих настроить работу регулятора на логику пользователя или близкую к ней .

Программное средство имитирует работу нечеткого контроллера с целью разработки и исследования оптимальных алгоритмов управления в реальном масштабе времени , позволяя при этом пользователю "на ходу" изменять логику его работы .

Ход работы регулятора отображается на экране монитора путем вывода графика скорости вращения ротора мотора и сравнения реальной скорости с заданной .

Результаты моделирования сохраняются в файлах с тем , чтобы пользователь мог затем сравнить результаты работы регулятора с применением различных логик .

При разработке самого нечеткого регулятора использовалась интегриро -

ванная среда Software Development Tool for W.A.R.P. фирмы SGS – THOMSON MICROELECTRONICS .

Объектом управления системы нечеткого контроля является электромотор постоянного тока со следующими параметрами :

- средняя скорость – 3800 ± 10 %

оборотов в минуту

На рис.1 приведена замкнутая модель работы системы. Задача нечеткого регулятора заключается в

том , чтобы заставить ротор мотора вращаться со скоростью, пропорциональной заданному значению напряжения .

Первая входная переменная представлена разницей между заданным напряжением и реальным напряжением на выходе :

err (t) = rif (t) – Vout (t) [1], где rif – напряжение, пропорциональное заданной скорости в

момент времени t ;

Vout – реальное напряжение на выходе в момент времени t .

Приняв во внимание динамику системы , второй входной переменной будет являться производная от ошибки derr (физический смысл – угловое ускорение ротора) .

В системе реализован замкнутый цикл управления . Входной параметр Vin(K) формируется путем суммирования предыдущего входного значения Vin(K-1) и значения DVin (K) , формируемого регулятором .

Vin ( K ) = Vin ( K – 1 ) + DVin (K) [2].

 

 

 

Рис. 1 Система нечеткого управления электромотором .

Выходная переменная формируется в зависимости от входных с использованием следующих продукционных правил :

IF err IS p AND Derr IS p THEN dv IS pp

IF err IS p AND Derr IS z THEN dv IS pz

IF err IS p AND Derr IS n THEN dv IS pn

IF err IS z AND Derr IS p THEN dv IS zp

IF err IS z AND Derr IS z THEN dv IS zz

IF err IS z AND Derr IS n THEN dv IS zn

IF err IS n AND Derr IS p THEN dv IS np

IF err IS n AND Derr IS z THEN dv IS nz

IF err IS n AND Derr IS n THEN dv IS nn

Принцип работы регулятора очень прост . Приведем пример : предположим , что переменная err отрицательна , т. е. ротор вращается со скоростью , большей , чем заданная (err = rif – Vout) , а производная Derr положительна , т. е. угловое ускорение положительно , следовательно , ротор еще и ускоряется . Чтобы приблизить скорость ротора к заданной , контроллер резко уменьшит скорость, т. е., в соответствии с седьмым правилом значением выходной переменной dv будет np .

Соответственно , если err = 0 и derr = 0 то это означает , что разницы между рекомендуемым и реальным значениями угловой скорости нет и ротор не замедляется и не ускоряется , следовательно изменять скорость не нужно , dv = zz ( пятое правило) .

ПО модели состоит из следующих

основных блоков :

- Инсталлятор . С его помощью осуществляется установка программного обеспечения на компьютер . Программа установки сделана в соответствии со стандартами Windows и поэтому описывать этот блок подробнее нет необходимости .

-Блок задания параметров модели . Через форму этого блока пользователь осуществляет ввод четырех параметров системы : три значения рекомендуемой скорости вращения ротора для каждого пятисекундного интервала работы модели и параметр логики Франка . Заполняется матрица rifbuf , состоящая из трех значений , которые затем передаются блокам визуализации и нечеткого вывода .

-Блок настройки на логику пользователя . Состоит из восьми кнопок с помощью которых пользователь может изменять значения переменных T_change и S_change , которые определяют т-нормами и s-нормами каких логик предполагается воспользоваться .

-Блок нечеткого вывода . Блок фактически представлен библиотекой функций, поставляемых фирмой SGS – THOMPSON вместе с W.A.R.P. – S.D.T. для эмуляции работы нечеткого регулятора WARP в среде пользовательских программ на языке С/С++. Основные функции - int InitWARP(char *,int,int) и int PerformWARP(double[],double[]). Функция InitWARP загружает в память базу данных, содержащуюся в файле с расширением “.cda”, и присваивает значения структурам, используемым в функции PerformWARP. Первым параметром функции InitWARP является указатель на строку, содержащую имя файла с расширением “.cda” и его полный путь для поиска. Второй параметр функции InitWARP - число входов нечеткого регулятора (или число входных переменных). Третий параметр - число выходов (или число выходных переменны). Функция InitWARP возвращает 1, если функция успешно загрузила свои структуры, и 0 - в противном случае. Одной из причин, приводящих к неуспешному выполнению функции, является неправильно заданный путь или имя файла с расширением “.cda”. Функция PerformWARP вычисляет значения выходных переменных в соответствии с значениями входных переменных. Первый параметр этой функции - одномерный массив действительных чисел с двойной точностью, содержащий значения входных переменных. Второй параметр - массив выходных переменных, вычисляемый этой функцией. Функция PerformWARP возвращает “1” - нормальное вычисление; “2” - если некоторое значение входной переменной выходит за область их определения (в этом случае вычисления прерываются); “3” - сбой аппаратного обеспечения.

-Блок визуализации результатов моделирования . Осуществляет построение графика зависимости скорости вращения ротора от времени .

Реализовано это следующим образом : по прерыванию таймера (18.2 раза в секунду) вызывается функция PerformWARP и ее выходная переменная отображается в заданном масштабе на графике в окне формы . Весь временной период эмуляции работы системы нечеткого контроля разделен на три интервала , в которых заданные значения скорости вращения ротора различны .

-Блок сохранения результатов . Представляет собой стандартный диалог Windows сохранения файла под заданным именем . При этом в файл записываются заданные пользователем значения скоростей и , далее , входные и выходные параметры функции PerformWARP столько раз , сколько она была вызвана за один сеанс моделирования .

На основе проведенных экспериментов можно сделать вывод о том , что использование различных параметрических нечетких логик , на которые производится настройка регулятора , а так же возможность их комбинирования позволяет улучшить качество работы систем нечеткого управления , применяемых в различных областях человеческой деятельности .

Литература :

1. Прикладные нечеткие системы : Пер. с япон./ К. Асаи, Д. Ватада, С. Иваи и др.; под

редакцией Т. Тэрано, К. Асаи, М. Сугэно. – М.: Мир, 1993.

 


Site of Information Technologies
Designed by  inftech@webservis.ru.